val registers-live-map = let
  val ++- map reg-sem = 
    fmap-add-range map reg-sem.id reg-sem.size reg-sem.offset
  val ++ map r = map ++- semantic-register-of r
in
  fmap-empty 
  ++ R0
  ++ R1
  ++ R2
  ++ R3
  ++ R4
  ++ R5
  ++ R6
  ++ R7
  ++ R8
  ++ R9
  ++ R10
  ++ R11
  ++ R12
  ++ R13
  ++ R14
  ++ R15
  ++ R16
  ++ R17
  ++ R18
  ++ R19
  ++ R20
  ++ R21
  ++ R22
  ++ R23
  ++ R24
  ++ R25
  ++ R26
  ++ R27
  ++ R28
  ++ R29
  ++ R30
  ++ R31
  ++ IO0
  ++ IO1
  ++ IO2
  ++ IO3
  ++ IO4
  ++ IO5
  ++ IO6
  ++ IO7
  ++ IO8
  ++ IO9
  ++ IO10
  ++ IO11
  ++ IO12
  ++ IO13
  ++ IO14
  ++ IO15
  ++ IO16
  ++ IO17
  ++ IO18
  ++ IO19
  ++ IO20
  ++ IO21
  ++ IO22
  ++ IO23
  ++ IO24
  ++ IO25
  ++ IO26
  ++ IO27
  ++ IO28
  ++ IO29
  ++ IO30
  ++ IO31
  ++ IO32
  ++ IO33
  ++ IO34
  ++ IO35
  ++ IO36
  ++ IO37
  ++ IO38
  ++ IO39
  ++ IO40
  ++ IO41
  ++ IO42
  ++ IO43
  ++ IO44
  ++ IO45
  ++ IO46
  ++ IO47
  ++ IO48
  ++ IO49
  ++ IO50
  ++ IO51
  ++ IO52
  ++ IO53
  ++ IO54
  ++ IO55
  ++ RAMPD
  ++ RAMPX
  ++ RAMPY
  ++ RAMPZ
  ++ EIND
  ++ SPL
  ++ SPH
  ++ SREG
  ++ PC
  ++ SP
end
